#!/usr/bin/env bash

APP=/app

DOCKER_LOGIN=${APP}/docker-login.sh

HUB_ADDR=registry.cn-hangzhou.aliyuncs.com/momoky

declare -a MODULES
# MODULES

# PROFILE

# 登录 docker 仓库
source $DOCKER_LOGIN

for (( i=0; i < ${#MODULES[*]}; i++ ))
do
  {
    m=${MODULES[$i]}
    declare -A module
    eval module=($m)

    # 是否有服务在运行，如果有就 down 这个服务
    info=`docker ps -a | grep ${module[SERVER]}`
    if [ -n "$info" ]; then
      docker rm -f ${module[SERVER]}
    fi

    image=${HUB_ADDR}/${module[SERVER]}

    # 创建镜像文件在宿主机的映射目录
    if [ ! -e "${APP}/${module[SERVER]}" ]; then
      mkdir ${APP}/${module[SERVER]}
    fi

    docker pull $image
    docker run --name ${module[SERVER]} \
    -e PROFILE=${PROFILE} \
    -p ${module[PORT]}:${module[PORT]} \
    -v ${APP}/${module[SERVER]}:/home/app \
    -d ${image}

  } &
done

wait

# 删除没用的镜像
for image_id in $(docker images | awk '$2=="<none>" { print $3 }')
do
  docker rmi ${image_id}
  echo "$image_id clear!"
done

echo "deploy success"
